package com.youlai.boot.system.model.form;

import java.io.Serial;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.*;
import org.hibernate.validator.constraints.Length;

/**
 * 客户档案表单对象
 *
 * @author youlaitech
 * @since 2025-08-26 15:58
 */
@Getter
@Setter
@Schema(description = "客户档案表单对象")
public class WxKfForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "项目剩余")
    @Length(max=64, message="项目剩余长度不能超过64个字符")
    private String dj;

    @Schema(description = "客户照片")
    @Length(max=256, message="客户照片长度不能超过256个字符")
    private String zp;

    @Schema(description = "客户卡号")
    @Length(max=64, message="客户卡号长度不能超过64个字符")
    private String kh;

    @Schema(description = "客户所属机构")
    @Length(max=64, message="客户所属机构长度不能超过64个字符")
    private String kfjg;

    @Schema(description = "姓名")
    //@NotBlank(message = "姓名不能为空")
    @Length(max=64, message="姓名长度不能超过64个字符")
    private String xm;

    @Schema(description = "性别")
    @Length(max=64, message="性别长度不能超过64个字符")
    private String xb;

    @Schema(description = "手机")
    //@NotBlank(message = "手机不能为空")
    @Length(max=64, message="手机长度不能超过64个字符")
    private String tel;

    @Schema(description = "联系电话")
    @Length(max=64, message="联系电话长度不能超过64个字符")
    private String tel1;

    @Schema(description = "生日")
    @Length(max=64, message="生日长度不能超过64个字符")
    private String sr;

    @Schema(description = "年龄")
    @Length(max=64, message="年龄长度不能超过64个字符")
    private String nl;

    @Schema(description = "出生日期")
    @Length(max=64, message="出生日期长度不能超过64个字符")
    private String csrq;

    @Schema(description = "客户状态")
    @Length(max=64, message="客户状态长度不能超过64个字符")
    private String kfzt;

    @Schema(description = "职业")
    @Length(max=64, message="职业长度不能超过64个字符")
    private String zy;

    @Schema(description = "初诊时间")
    //@NotNull(message = "初诊时间不能为空")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime czrq;

    @Schema(description = "病案号")
    @Length(max=64, message="病案号长度不能超过64个字符")
    private String bah;

    @Schema(description = "身份证号")
    @Length(max=64, message="身份证号长度不能超过64个字符")
    private String sfz;

    @Schema(description = "现住址")
    @Length(max=64, message="现住址长度不能超过64个字符")
    private String xzz;

    @Schema(description = "客户来源区域")
    @Length(max=64, message="客户来源区域长度不能超过64个字符")
    private String khly;

    @Schema(description = "期望回访方式")
    @Length(max=64, message="期望回访方式长度不能超过64个字符")
    private String hffs;

    @Schema(description = "接受回访")
    @Length(max=64, message="接受回访长度不能超过64个字符")
    private String jshf;

    @Schema(description = "接受短信")
    @Length(max=64, message="接受短信长度不能超过64个字符")
    private String jsdx;

    @Schema(description = "收入情况")
    @Length(max=64, message="收入情况长度不能超过64个字符")
    private String srqk;

    @Schema(description = "QQ")
    @Length(max=64, message="QQ长度不能超过64个字符")
    private String qq;

    @Schema(description = "微信")
    @Length(max=64, message="微信长度不能超过64个字符")
    private String wx;

    @Schema(description = "开发渠道")
    @Length(max=64, message="开发渠道长度不能超过64个字符")
    private String kfqd;

    @Schema(description = "了解途径")
    @Length(max=64, message="了解途径长度不能超过64个字符")
    private String ljtj;

    @Schema(description = "客户爱好")
    @Length(max=64, message="客户爱好长度不能超过64个字符")
    private String khxh;

    @Schema(description = "开发人员")
    @Length(max=64, message="开发人员长度不能超过64个字符")
    private String kefury;

    @Schema(description = "所属形象设计师")
    //@NotBlank(message = "所属形象设计师不能为空")
    @Length(max=64, message="所属形象设计师长度不能超过64个字符")
    private String sjs;

    @Schema(description = "客服人员")
    @Length(max=64, message="客服人员长度不能超过64个字符")
    private String kfry;

    @Schema(description = "介绍人")
    @Length(max=64, message="介绍人长度不能超过64个字符")
    private String jsr;

    @Schema(description = "备注")
    @Length(max=65535, message="备注长度不能超过65535个字符")
    private String bz;

    @Schema(description = "联系人信息")
    @Length(max=65535, message="联系人信息长度不能超过65535个字符")
    private String lxrxx;

    @Schema(description = "过敏史")
    @Length(max=65535, message="过敏史长度不能超过65535个字符")
    private String gms;

    @Schema(description = "门诊号")
    @Length(max=64, message="门诊号长度不能超过64个字符")
    private String mzh;

    @Schema(description = "就诊类型")
    //@NotBlank(message = "就诊类型不能为空")
    @Length(max=64, message="就诊类型长度不能超过64个字符")
    private String jzlx;

    @Schema(description = "设计时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime sjsj;

    @Schema(description = "设计科室")
    @Length(max=64, message="设计科室长度不能超过64个字符")
    private String sjks;

    @Schema(description = "形象设计师")
    //@NotBlank(message = "形象设计师不能为空")
    @Length(max=64, message="形象设计师长度不能超过64个字符")
    private String xxsjs;

    @Schema(description = "客户关心问题")
    @Length(max=64, message="客户关心问题长度不能超过64个字符")
    private String gxwt;

    @Schema(description = "客户意向1")
    @Length(max=64, message="客户意向1长度不能超过64个字符")
    private String kfyx1;

    @Schema(description = "客户意向2")
    @Length(max=64, message="客户意向2长度不能超过64个字符")
    private String kfyx2;

    @Schema(description = "客户意向3")
    @Length(max=64, message="客户意向3长度不能超过64个字符")
    private String kfyx3;

    @Schema(description = "就诊医生")
    @Length(max=64, message="就诊医生长度不能超过64个字符")
    private String jzys;

    @Schema(description = "助诊医生")
    @Length(max=64, message="助诊医生长度不能超过64个字符")
    private String zzys;

    @Schema(description = "未成交原因")
    @Length(max=512, message="未成交原因长度不能超过512个字符")
    private String wcjyy;

    @Schema(description = "设计备注")
    @Length(max=65535, message="设计备注长度不能超过65535个字符")
    private String sjbz;

    @Schema(description = "费用明细")
    @Length(max=65535, message="费用明细长度不能超过65535个字符")
    private String fymx;


}
